package com.projles.ttd.minigames;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import com.projles.ttd.R;
import com.projles.ttd.util.Jogador;
import com.projles.ttd.util.Player;

public class MiniGameAzarActivity extends Activity {

	private TextView mensagem;
	private Button botao;
	private List<Jogador> jogadores;
	private static Random gerador = new Random();
	private Player player;
	
	private static final double PROBABILIDADE = 0.2;
	
	public static boolean bebeAleatoriamente() {
		return (gerador.nextInt(1000) < PROBABILIDADE*1000);
	}

	@SuppressWarnings("unchecked")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.minigame_azar);
		
		Bundle params = getIntent().getExtras();
    	
		jogadores = (ArrayList<Jogador>) params.get("jogadores");
		player = Player.getPlayer(this);
		player.azar();
		
		mensagem = (TextView) findViewById(R.id.mensagem_azar);
		botao = (Button) findViewById(R.id.botao_azar);
		
		mensagem.setText(getResources().getString(R.string.txt_mini_azar));
		botao.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				player.click();
				mostrarJogador();
			}

		});
	}
	
	
	private void mostrarJogador() {
		setContentView(R.layout.minigame_azar_aux);
		
		Jogador jogadorEscolhido = jogadorAleatorio(); 
		
		TextView quemVaiBeber = (TextView) findViewById(R.id.txt_quem_vai_beber);
		quemVaiBeber.setText(jogadorEscolhido.getNome() +"\n\n"+ getResources().getString(R.string.txt_bebe));

		jogadorEscolhido.addDerrota();
		
		Button btSair = (Button) findViewById(R.id.bt_fechar_azar);
		btSair.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				player.click();
				
				finaliza();
			}

		});
		
	}
	
	private void finaliza() {
		Intent i = this.getIntent();
		i.putExtra("listaAtualizada", (Serializable) jogadores);
		this.setResult(RESULT_CANCELED, i);

		finish();
	}

	private Jogador jogadorAleatorio() {
		final int posicaoAleatoria = gerador.nextInt(jogadores.size());
		return jogadores.get(posicaoAleatoria);
	}
	
}
